<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2007. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
<title>Remote Debugging</title>
<script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"> </script>
</head>
<body>
<h1>Remote Debugging</h1>
<p>The client/server design of the Java debugger allows you to launch a Java
  program from computer on your network and debug it from the workstation running
  the platform.&nbsp; This is particularly useful when you are developing a program
  for a device that cannot host the development platform.&nbsp; It is also useful
  when debugging programs on dedicated machines such as web servers.&nbsp; </p>
<p>Note:&nbsp; To use remote debugging, you must be using a Java VM that supports
  this feature.</p>
<p>To debug a program remotely, you must be able to launch the program in debug
  mode on the remote machine so that it will wait for a connection from your
  debugger.&nbsp; The specific technique for launching the program and connecting
  the debugger are VM-specific.&nbsp; The basic steps are as follows:</p>
<ol>
  <li>Ensure that you are building your Java program with available debug information.&nbsp; (You
    can control these attributes from the <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.jdt.ui.preferences.CompliancePreferencePage)")'> <img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="Goto the Java compiler preference page"> <strong>Java &gt; Compiler</strong></a> preference
    page).&nbsp; </li>
  <li>After you build your Java program, install it to the target computer.&nbsp; This
    involves copying the .CLASS files or .JAR files to the appropriate location
    on the remote computer.</li>
  <li>Invoke the Java program on the remote computer using the appropriate VM
    arguments to specify debug mode and a communication port for the debugger.</li>
  <li>Start the debugger using a remote launch configuration and specify the
    address and port of the remote computer.</li>
</ol>
<p>When setting up the remote launch configuration there are a few items to take
  note of:</p>
<ul>
  <li>You must ensure you enter the correct hostname i.e. the name of the remote
    computer where you are currently running your code. The hostname can also
    be the IP address of the remote machine, for example using <em><strong>127.0.0.1</strong></em> instead
    of <em><strong>localhost</strong></em>.</li>
  <li>The port number must be the number of the port on the <em><strong>remote
        machine</strong></em>.</li>
</ul>
<p>Certain Java VMs support another way of starting a remote debug session. In
  this alternative connection type, the debugger is launched first. The debugger
  then waits and listens for the VM to connect to it. To debug this way, you
  must properly configure and launch a remote debug session, then launch the
  VM, specifying the location of your waiting debugger. For more information,
  see <a href="../tasks/task-remotejava_launch_config.htm">Using the remote Java
  application launch configuration</a>.</p>
<h3 class="related">Related Tasks</h3>
  <a href="../tasks/task-remotejava_launch_config.htm">Using the remote Java
    application launch configuration</a><br>
  <a href="../tasks/task-disconnect_remote_debug.htm">Disconnecting from a VM</a>
</body>
</html>
